package com.heima.apis.wemedia;

import com.heima.model.common.dtos.ResponseResult;
import com.heima.model.wemedia.pojos.WmChannel;
import com.heima.model.wemedia.pojos.WmUser;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

//和 leadnews-wemedia微服务里的feign包下的WemediaClient对接
@FeignClient("leadnews-wemedia")
public interface IWemediaClient {
//这个接口并不是提供给前端调用的，而是供当前微服务内部使用，以向其他微服务发送请求并获取数据。

    /**
     * 根据name查询自媒体用户
     * @param name
     * @return
     */
    @GetMapping("/api/v1/user/findByName/{name}")
    WmUser findWmUserByName(@PathVariable("name") String name);

    /**
     * 添加自媒体用户
     * @param wmUser
     * @return
     */
    @PostMapping("/api/v1/wm_user/save")
    ResponseResult saveWmUser(@RequestBody WmUser wmUser);

    /**
     * 获取所有频道
     * @return
     *///前端可以直接访问WmChannelController里的方法，而不是访问IWemediaClient
    //该远程方法是提供给其它微服务调用的，在其它微服务注入
    // @Autowired
    // private IWemediaClient wemediaClient;
    // 然后wemediaClient.getChannels();
    // TODO article微服务里的HotArticleServiceImpl里的cacheTagToRedis(为每个频道缓存30条分值较高的文章)调用了
    //谁调用了远程接口，就在谁的的启动类里添加 @EnableFeignClients("com.heima.apis")
    // 所以要在article微服务的启动类里里添加了@EnableFeignClients("com.heima.apis")
    @GetMapping("/api/v1/channel/list")
    public ResponseResult getChannels();

}
